type SnippetType = 'vue' | 'js' | 'ts' | 'less' | 'css' | 'other';

interface BaseSnippet {
  id: string;
  name: string;
  type: SnippetType;
  isSystem: boolean;
}

interface VueSnippet extends BaseSnippet {
  type: 'vue';
  template: string;
  script: string;
  style: string;
}

interface CommonSnippet extends BaseSnippet {
  type: Exclude<SnippetType, 'vue'>;
  content: string;
}

export type Snippet = VueSnippet | CommonSnippet;
